; (function () {
    //return
    /**
   * @param {number} m
   * @param {number} n
   * @return {number}
   */
    var uniquePaths = function (m, n) {
        // m为行 n为列
        let dp = []
        // 每一行的第一都变成1, 因为只能向下走
        for (let i = 0; i < m; i++) {
            let arr = new Array(n).fill(0)
            if (i === 0) arr.fill(1)
            arr[0] = 1
            dp.push(arr)
        }
        for (let i = 1; i < m; i++) {
            for (let j = 1; j < n; j++) {
                dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
            }

        }
        return dp[m - 1][n - 1]
    };

    uniquePaths(3, 2)
})();

// 全部覆盖为1, 也无所谓,后面反正也会覆盖
; (function () {
    //return
    var uniquePaths = function (m, n) {
        let dp = new Array(m).fill(1).map(() => new Array(n).fill(1));
        // dp[i][j] 表示到达（i，j） 点的路径数
        for (let i = 1; i < m; i++) {
            for (let j = 1; j < n; j++) {
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }
        }
        return dp[m - 1][n - 1];

    };
})();